01. C++ 向量

向量与矩阵代数

学习得不错!你已经学习了大量 C++ 句法。你也许注意到了,使用 C++ 编程无疑比使用 Python 困难。C++ 专为快速执行而设计,使用这门语言,你可以采用许多不同方式达到同一结果。而使用 Python 写代码的速度更快,但执行速度也有所下降。

最后,为了翻译你之前在本纳米课程中学到的 Python 代码,你还需要学习一小段句法:C++ 向量,它与 Python 列表相似。

向量库

你刚刚学习了库以及如何导入库!在本课的下一部分,你将学习如何使用 C++ 标准库中的向量。

编写 Python 程序来存储和操作矩阵时,你使用过 Python 列表。C++ 向量类似于 Python 列表。所以,你需要学习向量,才能在 C++ 中编写矩阵代数程序。

但是,在这里,状况有点混乱。C++ 还有一个称为列表的数据结构,但 C++ 列表与 Python 列表的实现方式不同。

C++ 列表和 C++ 向量都是名为 序列容器 的结构族的一部分。这些容器允许你串行存储值,然后访问这些值。C++ 有一些序列容器,包括列表、向量和数组。

但不要搞混了!C++ 向量最接近 Python 列表。你可以像在 Python 列表中一样将元素添加到 C++ 向量中。你还可以删除元素,或者轻松访问向量中的任何元素。

声明 C++ 向量

声明 C++ 向量变量与声明其他类型的变量相似:

typedefinition variablename;

但向量类型定义的句法看上去十分有趣,因为你还需要声明进入向量的值的类型,比如 integer, char, float 或是 string 等等。下面是一些使用向量声明变量的例子:

std::vector<char> charactervectorvariable;
std::vector<int> integervectorvariable;
std::vector<float> floatvectorvariable;
std::vector<double> doublevectorvariable:

包含向量库

在实际的程序中,你将需要从标准程序库中包含向量文件:

#include <vector>

int main() {
      std::vector<float> floatvectorvariable;
      return 0;
}

上面的代码将会声明一个 float 类型的空向量。

声明向量更通用的方式为:

std::vector<datatype> variablename;

练习声明向量

Start Quiz:

// TODO: import the vector library

// TODO: write a program that declares three integer vectors named:
//       vector1
//       vector2
//       vector3
#include <vector>

int main() {
    
    std::vector<int> vector1;
    std::vector<int> vector2;
    std::vector<int> vector3;
    
    return 0;
}